<template>
	<div class='login container'>
		<Header></Header>
		<section>
			<div class='login-tel'>
				<input type="text" v-model='userTel' placeholder="请输入手机号" pattern="[0-9]*">
			</div>
			<div class='login-tel'>
				<input type="text" v-model='userPwd' placeholder="请输入密码">
			</div>
			<div class='login-btn' @click='login'>登 录</div>
			<div class='tab'>
				<span @click='goLogin'>短信登录</span>
				<span @click="goRecovery">找回密码</span>
				<span @click="Register">快速注册</span>
                
			</div>
		</section>
		<Tabbar></Tabbar>
	</div>
</template>

<script>

import Tabbar from '@/components/common/Tabbar.vue'
import Header from './Header'
import { Toast } from 'mint-ui';
import http from '@/common/api/request.js'
import { mapMutations } from 'vuex';
export default{
	data () {
		return {
			userTel:'',//用户输入的手机号
			userPwd:'',//用户输入的密码
			//验证规则
			rules:{
				//手机号验证
				userTel:{
					rule:/^1[23456789]\d{9}$/,
					msg:'手机号不能为空,并且是11位数字'
				},
				//密码验证
				userPwd:{
					rule:/^\w{6,12}$/,
					msg:'密码不能为空,并且要求6,12位'
				}
			}
		}
	},

	components:{
		Header,
		Tabbar
	},
	methods:{
		...mapMutations(['USER_LOGIN']),
		//点击登录按钮
		login(){
			//1、前端验证
			if( !this.validate('userTel') ) return;
			if( !this.validate('userPwd') ) return;

			//2、发送请求，后端验证
			http.$axios({
				url:'/api/login',
				method:'POST',
				data:{
					userTel:this.userTel,
					userPwd:this.userPwd
				}
			}).then(res=>{
				//提示信息
				Toast(res.msg);
				//登录失败
				if( !res.success ) return;
				
				//登录成功 ==》跳转页面，存储用户信息
				// console.log(res.data)
				this.USER_LOGIN(res.data)
				
				this.$router.push({path: '/my'})
				
			})
			
		},
		goLogin(){
			this.$router.push('/login');
		},
		//验证信息提示
		validate( key ){
			let bool = true;
			if( !this.rules[key].rule.test( this[key])  ){
				//提示信息
				Toast(this.rules[key].msg);
				bool = false;
				return false;
			}
			return bool;
		},
		// 注册
		Register() {
			this.$router.push('/Register')
		},
		// 找回密码
		goRecovery() {
			this.$router.push('/Recovery')
		}
	}
}
</script>


<style scoped>
  section {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #F4F4F4;
  }
  section div {
    margin: .3rem 0;
    width: 8.9rem;
    height: .88rem;
  }
  section input {
    box-sizing: border-box;
    border-radius: .12rem;
    padding: 0 .2rem;
    line-height: .88rem;
    background-color: #FFF;
    border: 1px solid #CCC;
  }
  section .login-tel input {
    width: 8.9rem;
	font-size: .4rem;
  }
  section .login-tel {
    margin-top: .6rem;
	font-size: .4rem;
  }
  .login-code {
    display: flex;
  }
  .login-code input {
    border-radius: 0;
    flex: 1;
  }
  .login-code button {
    padding: 0 .4rem;
    line-height: .88rem;
    background-color: #b0352f;
    border: 0;
    color: #FFF;
    border-radius: .12rem;
  }
  .login-btn {
    line-height: .88rem;
    background-color: #b0352f;
    text-align: center;
    border-radius: .12rem;
    color: #FFF;
    font-size: .6rem;
    padding: .1rem 0;
  }
  .tab {
    display: flex;
    justify-content: space-between;
    font-size: .4rem;
  }
</style>